The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted to be prior art against the present disclosure.
One type of decoder used in a communication channel (which may include the read channel of a data storage device, or the receiver of a wired or wireless data transmission system) is a message-passing decoder. A message-passing decoder operates on log-likelihood ratios (LLRs) that have been output by a detector (e.g., a Viterbi detector) in the read channel of a data storage system, or by the demodulator of a receiver channel in a data transmission system, to decode data that has been encoded with a linear code, such as a low-density parity check (LDPC) code. A linear code can be represented by a graph, including variable nodes that correspond to the encoded data, and check nodes that show the check constraints on the data, imposed by the code. A typical message-passing decoder proceeds sequentially from node to node. The order of operation can be determined based on the variable nodes or the check nodes. For whichever type of node (variable or check) determines the order, for any one node of that type, all nodes of the other type that are adjacent the one node of that type generate messages for that one node of that type. Based on those messages, new messages are computed by the one node of that type and returned from the one node of that type to the adjacent ones of the nodes of the other type also in the form of LLRs. The process is repeated until a stopping criterion is met.
A relatively large amount of data is used at each node. Techniques are available to reduce the amount of data that must be stored, but those techniques results in slower convergence of the decoder.